package tom.client;

import java.util.Date;
import java.util.List;
import java.util.Map;

import tom.shared.AppUser;
import tom.shared.Company;
import tom.shared.LookupRecord;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ServiceAsync {
	void login(String user, String password, AsyncCallback<AppUser> callback);

	void logout(AsyncCallback<Void> callback);

	void setSessionVar(String var, String value, AsyncCallback<Void> callback);

	void getSessVar(String var, AsyncCallback<String> callback);

	void getCompany(AsyncCallback<Company> callback);

	void getPermissionForm(AsyncCallback<String[][]> callback);

	void fillReport(String reportFile, Map<String, Object> parameters,
			AsyncCallback<String> callback);

	void getServerTime(AsyncCallback<Long> callback);

	void getDeployDate(AsyncCallback<Date> callback);

	void lookupList(String lkFieldName, String lkFieldValue,
			AsyncCallback<List<LookupRecord>> callback);

	void getWorkingCompany(AsyncCallback<String[][]> callback);

	void verify(String pgmId, String user, String password,
			AsyncCallback<Integer> callback);
}
